<?php
/**
 * Description of DaoProduto
 *
 * @author Tiago
 */
require_once '../../Banco/Conexao.php';
class DaoProduto {
    public function cadastrar($produto){
        $nome = $produto->getNome();
        $descricao = $produto->getDescricao();
        $valor = $produto->getValor();
        $estoque = $produto->getQuantidade_estoque();
        $imagem = $produto->getImagem();
        $editora = $produto->getEditora();
        $idCat = $produto->getCategorias();
        $idAut = $produto->getAutores();
        $conexao = new Conexao();    
        $conexao->conecta();
        try{
            $query = "INSERT INTO produto (prod_nome, prod_descricao, prod_valor, prod_quantidade_estoque, edi_id, prod_imagem)
                        VALUES('$nome', '$descricao', '$valor', '$estoque', '$editora', '$imagem')";
            mysql_query($query) ;
            $idNovo = mysql_result(mysql_query("SELECT MAX(prod_id) FROM produto"), 0);
            foreach ($idCat as $value) {
                $query2 = "INSERT INTO produto_categoria VALUES( $idNovo, $value)";
                mysql_query($query2);                
            }
            foreach ($idAut as $v) {
                $query3 = "INSERT INTO autores_produtos VALUES ($v, $idNovo)";
                mysql_query($query3);
            }
            print mysql_error();
        } catch (Exception $e){
            echo "Erro: $e";
        }
        $conexao->desconnecta();   
    }
    
    // Busca lista de objetos do produto
    public function buscar(){
        try{
            $conexao = new Conexao();    
            $conexao->conecta();
            $lista = array();
            if(func_num_args() == 1){
                $query = "SELECT prod_id, prod_nome, prod_descricao, prod_valor, prod_imagem, edi_id FROM produto WHERE prod_nome LIKE '%" . func_get_arg(0) . "%'";
            }else if(func_num_args () == 0){
                $query = "SELECT prod_id, prod_nome, prod_descricao, prod_valor, prod_imagem, edi_id FROM produto";
            }            
            $consulta = mysql_query($query) or die('Erro na consulta');
            while($linha = mysql_fetch_array($consulta)){
                $produto = new Produto();
                $produto->setId($linha['prod_id']);
                $produto->setNome($linha['prod_nome']);
                $produto->setDescricao($linha['prod_descricao']);
                $produto->setValor($linha['prod_valor']);
                $produto->setImagem($linha['prod_imagem']);
                $produto->setEditora($linha['edi_id']);
                array_push($lista, $produto);
            }
            return $lista;
        }catch(Exception $e){
            echo $e;
        }
        $conexao->desconnecta();
    }
    
    // Busca produto Individual
    public function buscaProduto($id){
        $conexao = new Conexao();    
        $conexao->conecta();
        $produto = new Produto();
        try{
            $query = "SELECT * FROM produto WHERE prod_id = $id";
            $resultado = mysql_query($query);
            while($linha = mysql_fetch_array($resultado)){
                $produto->setId($linha['prod_id']);
                $produto->setNome($linha['prod_nome']);
                $produto->setDescricao($linha['prod_descricao']);
                $produto->setValor($linha['prod_valor']);
                $produto->setQuantidade_estoque($linha['prod_quantidade_estoque']);
                $produto->setEditora($linha['edi_id']);
                $produto->setImagem($linha['prod_imagem']);
            }
        }catch(Exception $e){
            echo $e;
        }
        return $produto;
    }
    
    public function editar($produto){
        $id = $produto->getId();
        $nome = $produto->getNome();
        $descricao = $produto->getDescricao();
        $valor = $produto->getValor();
        $estoque = $produto->getQuantidade_estoque();
        $imagem = $produto->getImagem();
        $editora = $produto->getEditora();
        try{
            $conexao = new Conexao();    
            $conexao->conecta();
            $query = "UPDATE produto SET prod_nome='$nome', prod_descricao='$descricao'
            , prod_valor='$valor', prod_estoque='$estoque', prod_editora=$editora, prod_imagem='$imagem'
            WHERE prod_id=$id";
            mysql_query($query);
        }catch(Exception $e){
            echo $e;
        }
        $conexao->desconnecta();
    }
    
    public function excluir($id){
        try{
            $conexao = new Conexao();    
            $conexao->conecta();
            $query = "DELETE FROM autores_produtos WHERE prod_id = $id";
            mysql_query($query);
            print mysql_error();
            $query = "DELETE FROM produto_categoria WHERE prod_id = $id";
            mysql_query($query);
            print mysql_error();
            $query = "DELETE FROM produto WHERE prod_id = $id";
            mysql_query($query);
            
            print mysql_error();
        }catch(Exception $e){
            
        }        
    }
    // Busca lista de objetos do produto
    public function buscarIds($condicao){
        try{
            $conexao = new Conexao();    
            $conexao->conecta();
            $lista = array();
            $query = "SELECT distinct p.prod_id, p.prod_nome, p.prod_valor, p.prod_imagem, p.edi_id FROM produto_categoria as p_c
                        INNER JOIN produto as p ON p.prod_id = p_c.prod_id  " . $condicao;         
            $consulta = mysql_query($query) ;
            while($linha = mysql_fetch_array($consulta)){
                $produto = new Produto();
                $produto->setId($linha['prod_id']);
                $produto->setNome($linha['prod_nome']);
                //$produto->setDescricao($linha['prod_descricao']);
                $produto->setValor($linha['prod_valor']);
                $produto->setImagem($linha['prod_imagem']);
                $produto->setEditora($linha['edi_id']);
                array_push($lista, $produto);
            }
            return $lista;
        }catch(Exception $e){
            echo $e;
        }
        $conexao->desconnecta();
    }
    
    public function buscarAutProd($id){
        $conexao = new Conexao();    
        $conexao->conecta();        
        try{
            $lista = array();
            $query = "SELECT a.aut_nome as a FROM autores as a INNER JOIN autores_produtos as a_p
                ON a.aut_id = a_p.aut_id WHERE a_p.prod_id = $id";
            $resultado = mysql_query($query);
            while($linha = mysql_fetch_array($resultado)){
                array_push($lista, $linha['a']);
            }    
            return $lista;
        }catch(Exception $e){
            
        }
        
    }
    public function buscarCatProd($id){
        $conexao = new Conexao();    
        $conexao->conecta();        
        try{
            $lista = array();
            $query = "SELECT c.cat_nome as cat FROM categoria as c INNER JOIN produto_categoria as p
                ON c.cat_id = p.cat_id WHERE p.prod_id = $id";
            $resultado = mysql_query($query);
            while($linha = mysql_fetch_array($resultado)){
                array_push($lista, $linha['cat']);
            }    
            return $lista;
        }catch(Exception $e){
            
        }
        
    }
}

?>
